﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using TabbedTemplate.Models;

namespace TabbedTemplate.Services
{
    public interface IRemotePunchInfoStorage:INotifyStatusChanged
    {
        /// <summary>
        /// 是否已登录。
        /// </summary>
        Task<bool> IsSignedInAsync();

        /// <summary>
        /// 登录。
        /// </summary>
        Task<bool> SignInAsync();

        /// <summary>
        /// 注销。
        /// </summary>
        Task SignOutAsync();
        /// <summary>
        /// 获得所有打卡信息。
        /// </summary>
        Task<IList<PunchInfo>> GetPunchInfoItemsAsync();
        /// <summary>
        /// 保存所有打卡信息。
        /// </summary>
        /// <param name="punchInfoList">所有打卡信息。</param>
        Task<ServiceResult>
            SavePunchInfoItemsAsync(IList<PunchInfo> punchInfoList);

        Task<IList<byte[]>> GetImageAsync(long TimeStamp);
        Task DeleteAsync(long TimeStamp);
        Task SaveImageAsync(IList<byte[]> images, long TimeStamp);

    }
}
